package util

import (
	"fmt"
	"os"
)

// EnsureDirExists 检查目录是否存在，如果不存在则创建
func EnsureDirExists(path string) error {
	// 获取指定路径的文件信息
	info, err := os.Stat(path)
	if err != nil {
		if os.IsNotExist(err) {
			// 若目录不存在，则创建该目录
			err := os.MkdirAll(path, 0755)
			if err != nil {
				return fmt.Errorf("无法创建目录 %s: %w", path, err)
			}
			return nil
		}
		// 其他错误情况，直接返回错误
		return fmt.Errorf("检查目录 %s 时出错: %w", path, err)
	}
	// 检查路径是否为目录
	if !info.IsDir() {
		return fmt.Errorf("%s 不是一个目录", path)
	}
	return nil
}
